using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;

using QLTDK.Entities.Base;

namespace QLTDK.Entities.BaseObjects
{
    public class BaseTdkTudieukhien : EntityObject<int>
    {
        #region Declarations

		private string tenTDK = String.Empty;
		private bool? tiepDiaTDK = null;
		private string ghiChu = null;
		
		private CtrCongtrinh maCongTrinhLapDat = null;
		private TdkLoaidienke maLoaiDienKe = null;
		private TdkLoaihopphanphoi maLoaiHopPhanPhoi = null;
		private TdkLoaitudieukhien maLoaiTDK = null;
		
		private IList<CtrCongtrinh> ctrCongtrinhs = new List<CtrCongtrinh>();
		private IList<TdTuyenden> tdTuyendens = new List<TdTuyenden>();
		private IList<TdkCaptdk> tdkCaptdks = new List<TdkCaptdk>();
		private IList<TdkLoaicb> tdkLoaicbs = new List<TdkLoaicb>();
		private IList<TdkContacteur> tdkContacteurs = new List<TdkContacteur>();
		
		#endregion

        #region Constructors

		/// <summary>
        /// Since we want to leverage automatic properties, init appropriate members here.
        /// </summary>
		private void InitMembers()
		{
			CtrCongtrinhs = new List<CtrCongtrinh>();
			TdTuyendens = new List<TdTuyenden>();
			TdkCaptdks = new List<TdkCaptdk>();
			TdkLoaicbs = new List<TdkLoaicb>();
			TdkContacteurs = new List<TdkContacteur>();
		}
		
		/// <summary>
        /// Creates valid entity object
        /// </summary>
		public BaseTdkTudieukhien() 
		{ 
			InitMembers();
		}
		
        #endregion

        #region Properties

		[DomainSignature]
		public virtual string TenTDK
        {
            get { return tenTDK; }
			set
			{
				tenTDK = value;
			}
        }

		[DomainSignature]
		public virtual bool? TiepDiaTDK
        {
            get { return tiepDiaTDK; }
			set
			{
				tiepDiaTDK = value;
			}
        }

		[DomainSignature]
		public virtual string GhiChu
        {
            get { return ghiChu; }
			set
			{
				ghiChu = value;
			}
        }

		[DomainSignature]
		public virtual CtrCongtrinh MaCongTrinhLapDat
        {
            get { return maCongTrinhLapDat; }
			set
			{
				maCongTrinhLapDat = value;
			}
        }
		
		[DomainSignature]
		public virtual TdkLoaidienke MaLoaiDienKe
        {
            get { return maLoaiDienKe; }
			set
			{
				maLoaiDienKe = value;
			}
        }
		
		[DomainSignature]
		public virtual TdkLoaihopphanphoi MaLoaiHopPhanPhoi
        {
            get { return maLoaiHopPhanPhoi; }
			set
			{
				maLoaiHopPhanPhoi = value;
			}
        }
		
		[DomainSignature]
		public virtual TdkLoaitudieukhien MaLoaiTDK
        {
            get { return maLoaiTDK; }
			set
			{
				maLoaiTDK = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<CtrCongtrinh> CtrCongtrinhs
        {
            get { return ctrCongtrinhs; }
            protected set
			{
				ctrCongtrinhs = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<TdTuyenden> TdTuyendens
        {
            get { return tdTuyendens; }
            protected set
			{
				tdTuyendens = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<TdkCaptdk> TdkCaptdks
        {
            get { return tdkCaptdks; }
            protected set
			{
				tdkCaptdks = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<TdkLoaicb> TdkLoaicbs
        {
            get { return tdkLoaicbs; }
            protected set
			{
				tdkLoaicbs = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<TdkContacteur> TdkContacteurs
        {
            get { return tdkContacteurs; }
            protected set
			{
				tdkContacteurs = value;
			}
        }
		
        #endregion
    }
}